﻿using System;
using viWiki.Classes;
using viWiki.Controllers;

public partial class Admin_Pages_viWiki_Namespaces_EditNamespace : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["NamespaceInfoId"] != null)
        {
            int NamespaceInfoId = Convert.ToInt32(Request.QueryString["NamespaceInfoId"]);
            NamespaceInfo nspace = NamespaceController.GetNamespace(NamespaceInfoId);
            NAME.Text = nspace.Name;
            DEFAULT_PAGE.DataSource = WikiPageController.GetWikiPagesByNamespace(NamespaceInfoId);
            DEFAULT_PAGE.DataBind();
        }
        else
        {// add a new namespace            
            DEFAULT_PAGE.Items.Add("Main Page");
            DEFAULT_PAGE.Enabled = false;
        }

    }
    protected void SAVE_Click(object sender, EventArgs e)
    {
        if (Request.QueryString["NamespaceInfoId"] != null)
        {
            int NamespaceInfoId = Convert.ToInt32(Request.QueryString["NamespaceInfoId"]);
            NamespaceInfo nspace = NamespaceController.GetNamespace(NamespaceInfoId);
            nspace.Name = NAME.Text;
            int wikipageid = 0;
            Int32.TryParse(DEFAULT_PAGE.SelectedValue, out wikipageid);
            nspace.DefaultWikiPageId = wikipageid;
            NamespaceController.UpdateNamespace(nspace);
        }
        else
        {// add a new namespace            
            NamespaceInfo nspace = new NamespaceInfo();
            nspace.Name = NAME.Text;
            nspace.DefaultWikiPageId = 0;
            int nspaceId = NamespaceController.AddNamespace(nspace);
            //add new wiki page
            WikiPage wikipage = new WikiPage();
            wikipage.Name = "Main Page";
            wikipage.NamespaceInfoId = nspaceId;
            wikipage.Url = "Main-Page";
            wikipage.Content = "The Main Page";
            wikipage.Date = DateTime.Now;
            int wikipageId = WikiPageController.AddWikiPage(wikipage);
            // update namespace for the default wiki page id
            NamespaceInfo updatenspace = NamespaceController.GetNamespace(nspaceId);
            updatenspace.DefaultWikiPageId = wikipageId;
            NamespaceController.UpdateNamespace(updatenspace);
        }
    }
    protected void CANCEL_Click(object sender, EventArgs e)
    {
        Response.Redirect(Request.RawUrl);
    }
}
